MDD2D:Tutorial de Mapping
Básico Criar mapas para o MDD 2D não é uma tarefa que exige muitos conhecimentos, mas é uma coisa ser bem criativo e ter a intenção de tornar o MDD um jogo mais atrativo e completo. Mas no início para alguns pode ser um pouco frustrante. Aqui temos um guia que irá lhe ajudar a aprender como criar mapas para o Projeto MDD 2D. Diretórios Você precisa usar uma certa estrutura quando for mapear para o MDD 2D : *(diretório principal) **graphics ***tiles ****(o tileset que você quer) **maps ***(o seu mapa fica aqui) Como conseguir o editor de mapas O editor de mapas que usamos no MDD 2d se chama Tiled. Você pode encontrá-lo em http://mapeditor.org/. O Tiled é uma aplicação java. Isso significa que roda em quaisquer sistemas onde uma Máquina virtual java puder rodar. Entretanto, você precisa da última Java Runtime Environment instalada no seu sistema. Você pode fazer o download em http://www.java.com/getjava/. Configurando os arquivos de dados Para criar um mapa, você deve primeiro pensar em quais gráficos irá utilizar no mapa, dentro do diretório /data/graphics/tiles você encontra todos os tiles que o jogo permite ser usados no jogo. Configurando o Tiled para criar Mapas do MDD 2D O Tiled é um editor de mapas que não foi feito especificamente para o Projeto MDD. Isso significa que ele possui muitas opções que não precisamos. Para criar um mapa, clique em File->New. Use as seguintes configurações : * Map Type: Orthogonal * Tile Size: 32x32 * Tile Spacing: 0 * Map Size: Deve ter no mínimo 60x60 (O limite teórico máximo é bem maior). Uma borda de 10 tiles para cada mapa também é necessário (diagram). Adicionalmente uma borda de 10 tiles é recomendada também quando um mapa possuir mais de um ambiente por exemplo, evitando assim que o jogador possa visualizar mais de uma sala na mesma tela. Importando tilesets Agora você pode escolher quais tilesets você deseja utilizar no mapa. Para importar um tileset, selecione Tilesets->New Tileset e sete as seguintes opções : * Name: (não importa, mas ajuda ter um nome descritivo) * Tile width: 32 * Tile height: 32 * Reference tileset image: marcado * Tile spacing: 0 * Use transparent color: desmarcado Agora navegue até o diretório graphics/tiles/ do MDD 2D. Lá você encontrará todos os tilesets que são usados no MDD 2D; Eles são salvos como imagens PNG. Selecione o que deseje utilizar para o seu Mapa. Por favor, somente importe tilesets que você irá utilizar. Não esqueça também de importar o tileset "Collision.png". Ele é muito importante, e seu propósito será explicado depois. Iniciando para o mapa Agora finalmente iremos começar a mapear. Para adicionar Tiles no mapa, selecione a ferramenta Lápis ( Ou Carimbo nas versões mais novas do Tiled ), e então escolha o tile através da Paleta de Tiles. Agora basta clicar no espaço central no local onde você deseja adicionar os tiles. Por favor, sempre preste atenção em qual Camada ( Layer ) você está desenhando, por que as camadas possuem regras diferentes : *Use uma camada beneath da Camada "Fringe" para tiles sem transparência. The layers beneath fringe have to be filled completely before you can call the map finished. When there are partially transparent tiles without completely opaque tiles on a layer below, strange graphic bugs will appear in the empty area. *The "Fringe" Layer itself is for oversized tiles which have to be drawn in front of or behind moving objects, depending on their location. This sorting takes up CPU, making the game run slower. Thus, you should only use this layer for the tiles which have to use it. *Layers above the "Fringe" layer are always drawn over the map sprites. It should be used for objects which are meant to look as if they are far above the game area. Keep in mind that there are also monsters which are larger than player characters. *The "Collision" Layer isn't displayed in the game. It contains information about which parts of the map are walkable and which aren't. Don't put any tiles on this layer except for the red collision tiles from the collision tileset. Quando você estiver terminando o seu mapa, você precisa dizer quais tiles serão andáveis ou não. Para fazer isso, marque todos os tiles que você deseja bloquear com quadrados vermelhos do tileset de colisão. Be careful that even if a tile is not reachable, but is walkable, the server can spawn monsters there which can not be killed by the players because they can't reach them. This will eventually lead to all monsters accumulating in the unreachable area until there are no monsters left in the reachable areas. Você pode checar se você fez isso corretamente, salvando o mapa, dando um zoom out até que todo o mapa seja visível, esconder todas as camadas exceto as camadas de colisão, e usar a ferramenta de preencher para toda a área vazia. Todos os tiles que continuem desmarcados não são alcançáveis pelos jogadores. Tenha noção que você precisa de uma borda de no mínimo 5 tiles em todas as direções que não são andáveis, mas devem ser desenhadas corretamente (diagram). Portais para outros mapas devem ter apenas alguns tiles de tamanho. (Você pode adicionar os portais assim como pode adicionar os npcs e efeitos usando a camada de Objetos.) Testando o seu mapa Para testar o seu mapa, você precisa substituir um dos mapas do seu diretório do MDD2D (no subdiretório data/maps). Quando você iniciar o jogo e ir até aquele mapa que você substituiu você poderá ver o seu novo mapa. Tópicos Intermediários Efeitos de Ambiente Efeitos de Ambiente são novos no MDD 2D. Eles são imagens de background que são desejadas em lugares em que não existem tiles ou tiles com transparência, ou até mesmo imagens transparentes que são desenhadas acima do mapa. Todos esses gráficos podem ter rolagem independente. Eles são usados em uma grande variedade de efeitos de ambiente como tempo, escuridão, etc. Para adicionar efeitos de ambiente ao seu mapa, abra-o com o tiled, e clique em Map -> Properties. Adicionando imagens de ambiente Primeiro você precisa escolher uma imagem. Faça isso adicionando uma chave foreground0image e setar o seu valor para o caminho da imagem que você deseja utilizar relativo ao diretório data. Para um efeito de spotlight digite /graphics/images/ambient/spotlight.png. Quando você desejar que a imagem se mova permanentemente adicione as novas chaves : foreground0scrollX e foreground0scrollY seguidos por um número (deve ser um valor decimal). foreground0scrollX determina a velocidade de rolagem da tela para a direita (valores negativos significam um rolagem para esquerda) e foreground0scrollY e velocidade de rolagem para baixo (valores negativos significam para cima). Ambos os valores estão em pixels por frame. Você também pode definir um parâmetro foreground0parallax. Esse parâmetro afeta como as rolagens dos overlays irão se comportar. Um valor de 1.0 significa que o overlay irá ficar relativo ao chão quando a tela se mover. Um valor de 0.0 significa que o overlay ficará relativo a "camera" e não é afetado pela rolagem. Ele é um valor decimal, então você pode setá-lo aos valores entre 1 e 0 para criar uma ilusão tridimensional de uma camada entre a "camera" e o mapa. Quando estiver usando fundos de diferentes resoluções, alguns poderão ficar desproporcionais (por exemplo, o buraco usado nas cavernas que precisam preencher a tela repetidamente em resoluções maiores que 800x600). Isso é o porque, o parâmetro keepratio foi adicionado: ele irá escalar a imagem para cima ou para baixo baseado na resolução atual. Lembre-se que o fator de escala é baseado na resolução padrão de 800x600, então, novas imagens de overlay são encaixadas na resolução corrente para fazer esse parâmetro funcionar. (A Escala de imagem para o modo de resolução de 1024x768, for instance, será calculado dessa maneira: Novo Comprimento da Imagem = comprimento-da-imagem / 800 * 1024, Novo Tamanho da Imagem = tamanho-da-imagem / 600 * 768). Para adicionar esse parâmetro para a sua configurações de foreground, você precisa definir o foreground0keepratio para o valor true. Você pode criar quaisquer números de gráficos de fundo. Para definir um segundo, crie as chaves com 1 ao invés de 0, para um terceiro use 2, e assim por diante. E por último o foreground2parallax como o valor parallax de fundo. Os foregrounds não aparecem no Tiled ( Assim como os objetos ). Eles apareceram apenas no jogo. Quando não funcionar alguma coisa, por favor, cheque se todos os nomes das chaves estão escritos corretamente (eles são CaseSensitive, ou seja, diferenciam maiúsculas de minúsculas) e que os números dos foreground são consecutivos iniciando em 0. Quando você desejar criar imagens de fundo por conta própria (imagens transparentes de 32bit png de quaisquer tamanho) por favor, não se esqueça de fazê-las com transparência com o seu software de manipulação gráfica. Senão o jogador não poderá ver o mapa sobre a imagem. Uma opacidade de 50% deve ser o máximo absoluto. Quando você deseja criar efeitos que não devem obstruir a visão dos jogadores use uma opacidade entre 10% e 20%. Adicionando imagens de fundo Imagens de fundo são adicionadas da mesma maneira que as imagens de frente, com a exceção de que as chaves de propriedade não começam com o prefixo foreground mas com background. Eles usam sua própria numeração, então você precisa numerar suas imagens de fundo 0, 1, 2 etc. Não importa se você possuir foregrounds ou não. background0image background0scrollY background0scrollX background0keepratio Ao contrário dos outros tipos de imagem a primeira imagem de fundo (background0image) não precisa ter nenhuma transparência, mas deve ser 100% opaco. Senão feios bugs gráficos irão aparecer. Efeitos de Partículas Cheque o artigo sobre a nossa MDDWIKI:MDD2D:Engine de Partículas para uma descrição de como adicionar efeitos de partículas ao seu mapa e como criar novos efeitos de partículas quando o efeito que você deseja não existe. Tiles Animados Para fazer um tipo de Tiles Animados vá até Tilesets->Tileset Manager. E então selecione o tileset com o tile e todos os frames de animação (eles precisam estar no mesmo tileset) e clique no ícone com um Lápis e um pedaço de papel (a dica diz "Edit..."). Selecione o tile que você deseja animar na lista a esquerda. Você deve ver uma tabela a sua direita com duas colunas de nomeadas : "Name" e "Value". Você precisa descrever a animação do tile nessa tabela. Aqui está um exemplo para um animação de 3 Fases : NOME VALOR animation-frame0 0 animation-delay0 100 animation-frame1 16 animation-delay1 100 animation-frame2 48 animation-delay2 100 animation-frameX é o número Título (como mostrado na lista a esquerda) e animation-delayX é quanto tempo será mostrado (100 é igual para um segundo). Animações não são visualizadas no Tiled, apenas dentro do jogo. Tópicos Avançados / Adicionando um mapa ao servidor Criando um mini-mapa A criação de um minimapa é uma tarefa que exige um software de manipulação de imagens que suporte múltiplas camadas e o formato PNG (nós recomendamos o GIMP). Se você não é familiar com esses programas, peça a algum artista em nossos fóruns para criar um minimapa do seu mapa. Quando você desejar criar o seu próprio minimapa, então você deve seguir exatamente os passos abaixo para garantirmos o mesmo estilo de MiniMapas do jogo : #Abra o seu mapa no Tiled, dê um zoom out até que todo o seu mapa possa ser visto e use a opção "save as image" do menu. #Abra a imagem resultante com o seu software de manipulação gráfica. #Redimensione-o para onde 1 pixel representa 1 tile. Quando o seu mapa tiver por exemplo 160x100 tiles de tamanho (incluindo a zona de borda) a sua imagem deve ficar com 160x100 pixels. #Crie uma nova camada transparente por cima da existente. #Selecione a ferramenta Lápis com o tamanho de 1x1 pixel e com a cor #000000 (preto puro). Anti aliasing should be deactivated when available. #Agora desenhe linhas na nova camada seguindo os seguintes recursos do mapa : #*Montanhas e paredes (lado baixo e alto) #*Rios e Lagos #*Estradas (ambos os lados da estrada como linhas únicas) #*A borda de quaisquer estraturas grandes do mapa que você sinta que deveriam estar no mapa #Árvores e outros objetos podem ser representados com pixels únicos com uma transparência de 50% alpha, quando elas são muitas isso irá afetar a jogabilidade do Mapa. #Quando terminar, remova a camada de fundo. Agora somente as linhas pretas estarão visíveis #Redimensione a imagem para que os lados tenham metade (50%) do tamanho. Você deveria também usar o melhor método de filtragem de imagem disponível (cubic filtering no GIMP). #Salve o seu minimapa terminado como uma imagem PNG com 32 bits de cor e transparência alpha como *nome_do_seu_mapa* /data/graphics/minimaps/*nome-do-mapa*.png. #Abra o seu mapa com o Tiled, clique em Map->Properties na barra de menu e adicione uma nova propriedade com a chave "minimap" e o valor "/graphics/minimaps/*mapname*.png". #Nos envie o seu Mapa e Mini-Mapa Enviando um mapa para o time de desenvolvimento Existem diversas maneiras para que você possa enviar o seu mapa para ser incluído nas próximas releases do projeto. ;E-Mail: Envie o seu mapa para o email suporte@mundodosdragoes.org. ;IRC: Entre em nosso Canal de IRC. ;Fórum: Envie o seu para para um webspace quaisquer como 4shared, Megaupload, Rapidshare, etc. Uma imagem geral do mapa (pode ser criada no Tiled com o recurso "Save as Image") seria bom também. Visite o nosso Fórum, registre-se caso ainda não tenha uma conta em nosso site. Então abra um novo tópico na seção de Mapping do MDD 2D e poste o link para o seu mapa com alguns pequenos detalhes sobre o mesmo. Por favor, entenda que alguns detalhes em seu mapa podem ser alterados para se adaptarem as necessidades do jogo, portanto adicione também informações de como entrar em contato com você. Dicas para um bom mapeamento * Antes de começar o seu mapa, você precisa ter pelo menos uma idéia básica de como Before you start with a map you should have a loose idea of the layout. Making a sketch of the map on a piece of paper can be very useful. * Tente evitar pontos de choque como pontes, passagens das montanhas ou corredores com apenas um tile de tamanho. Eles podem ser bloqueados facilmente. * Não adicione muitos objetos similares na mesma tela. Objetos muito brilhantes e chamativos devem ser usados aos poucos. Tente quebrar grandes áreas com o mesmo tile por cima ou por baixo dos objetos. * Evite padrões regulares em ambientes naturais. Árvores geralmente não crescem em padrões iguais. Rios, montanhas ou corredores das cavernas nunca devem ser completamente retos. * Não faça mapas muito funcionais. Dê aos jogadores algo para olhar, mesmo se não houver nada de relevante para a jogabilidade. * Mas mantenha a jogabilidade em mente.